#pragma once

#include <string>
using namespace std;

class Profile
{
	string name;
	//value from 0 to 100
	int masterVolume, sfxVolume, musicVolume;
	int levelsUnlocked;
	int slot;
	bool isWindowed;
	float bestTimes[25];

	//Which of the four control schemes?
	//0:WASD, JKL
	//1:Arrows, ZXC
	//2:WASD, ZXC
	//3:Arrows, JKL
	int controlScheme;
public:
	Profile(void);
	~Profile(void);

	string getName() const {return name;};
	void setName(string newName)  {name = newName;};

	void toggleIsWindowed() {isWindowed = !isWindowed;};
	bool getIsWindowed() {return isWindowed;};
	void setIsWindowed(bool windowed) {isWindowed = windowed;};

	int getMasterVolume()	const {return masterVolume;};
	int getSFXVolume()		const {return sfxVolume;};
	int getMusicVolume()	const {return musicVolume;};
	

	void setMasterVolume(int volume)	;
	void setSFXVolume(int volume)		;
	void setMusicVolume(int volume)		;
	

	void setMasterVolume(float volume)	{masterVolume = (int)(volume * 100.0f);};
	void setSFXVolume(float volume)		{masterVolume = (int)(volume * 100.0f);};
	void setMusicVolume(float volume)	{masterVolume = (int)(volume * 100.0f);};

	int getLevelsUnlocked() const {return levelsUnlocked;};
	int getControlScheme()	const {return controlScheme;};
	int getSlotNumer()		const {return slot;};

	const float* getBestTimes() const {return bestTimes;}
	float getBestTime(int n) const {return bestTimes[n];}

	void setLevelsUnlocked(int integer)  {levelsUnlocked= integer;};
	void setControlScheme (int integer)  {controlScheme = integer;};
	void setSlotNumber(int slotNum)		 {slot = slotNum;};

	void setBestTime(int n, float f) {bestTimes[n] = f;}

};

